#!/usr/bin/perl
+use strict;
use warnings;
use File::Basename;
#
my %options;
+my $dir;
sub expandrw {
my $read = shift;
sub expandsuboptions {
my $f = shift;
my $res;
- $olist = $options{$f};
+ my $olist = $options{$f};
# If no options, don't clutter things.
if ( not defined($olist) ) { return; }
my $name = shift;
my $dir2 = shift;
- $name2 = $name;
+ my $name2 = $name;
$name2 =~ s/-/_/g;
- $d2 = $dir2;
+ my $d2 = $dir2;
$d2 =~ s:/.*::;
$name2 = $d2 . '_' . $name2;
print PARTS qq(<!ENTITY inc_$name2 SYSTEM "../$dir2/$name.xml">\n);
print FILE "\&inc_$name2;\n";
if ( !-e "$dir/$dir2/$name.xml" ) {
- open $tmp, '>', "$dir/$dir2/$name.xml" or die $!;
+ open my $tmp, '>', "$dir/$dir2/$name.xml" or die $!;
print $tmp "\n";
close $tmp;
}
sub includef {
my $name = shift;
- $name2 = $name;
+ my $name2 = $name;
$name2 =~ s/-/_/g;
print PARTS qq(<!ENTITY inc_$name2 SYSTEM "$name.xml">\n);
print FORMATS "\&inc_$name2;\n";
open FORMATS, ">$dir/autogen/_formats.xml";
print FORMATS qq(<!-- This document is automatically generated. -->\n);
-@formats = qx(./gpsbabel -^3);
+my @formats = qx(./gpsbabel -^3);
if ( $? != 0 ) {
die "error running gpsbabel: $?";
}
-$going = 0;
-$dooptions = 0;
+my $going = 0;
+my $dooptions = 0;
# Prescan the argument list for options.
+my $fmt;
+my $skipping;
+
for (@formats) {
chomp;
s/\&/\&/g;
s/</\</g;
s/>/\>/g;
- @line = split "\t";
+ my @line = split "\t";
next if ( scalar(@line) < 1 );
if ( ( $line[0] eq 'file' ) || ( $line[0] eq 'serial' ) ) {
$skipping = 1;
}
if ( $line[0] eq 'option' && $skipping == 0 ) {
- $optname = $line[2];
+ my $optname = $line[2];
$options{$fmt} .=
"<link linkend=\"fmt_${fmt}_o_${optname}\">$optname</link> ";
}
}
+my $id;
+my %fmts;
+
for (@formats) {
chomp;
s/\&/\&/g;
s/</\</g;
s/>/\>/g;
- @line = split "\t";
+ my @line = split "\t";
next if ( scalar(@line) < 1 );
if ( $line[0] eq 'internal' ) {
include( $id, "formats" );
}
elsif ( $going && $dooptions && ( $line[0] eq 'option' ) ) {
- $nid = 'fmt_' . $id . '_o_' . $line[2];
+ my $nid = 'fmt_' . $id . '_o_' . $line[2];
print FILE <<END;
<section id="$nid">
<title><option>$line[2]</option> option</title>
open FORMATS, ">$dir/autogen/_filters.xml";
print FORMATS qq(<!-- This document is automatically generated. -->\n);
-@filters = qx(./gpsbabel -%1);
+my @filters = qx(./gpsbabel -%1);
if ( $? != 0 ) {
die "error running gpsbabel: $?";
}
s/\&/\&/g;
s/</\</g;
s/>/\>/g;
- @line = split "\t";
+ my @line = split "\t";
if ( $going && ( $line[0] eq 'option' ) ) {
print FILE <<END;